#!/bin/bash

# 加载路径配置
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../config/paths.conf"

log() {
    echo -e "\033[0;32m[$(date '+%Y-%m-%d %H:%M:%S')]\033[0m $1"
}

# 停止所有监控进程
log "停止所有监控进程..."

# 从PID文件停止进程
if [ -f $TEMP_DIR/monitor_pids.txt ]; then
    while IFS= read -r line; do
        pid_name=$(echo $line | cut -d'=' -f1)
        pid=$(echo $line | cut -d'=' -f2)
        
        if kill -0 $pid 2>/dev/null; then
            log "停止进程 $pid_name: $pid"
            kill $pid
        fi
    done < $TEMP_DIR/monitor_pids.txt
    rm -f $TEMP_DIR/monitor_pids.txt
fi

# 确保所有tcpdump进程停止
pkill -f "tcpdump.*port (80|443)" 2>/dev/null || true
pkill -f "netstat.*:80" 2>/dev/null || true

# 等待进程完全停止
sleep 5

# 归档当前日志
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
if [ "$(ls -A $LOG_DIR 2>/dev/null)" ]; then
    log "归档监控日志..."
    tar -czf $ARCHIVE_DIR/monitor_$TIMESTAMP.tar.gz -C $LOG_DIR .
    log "日志已归档到: $ARCHIVE_DIR/monitor_$TIMESTAMP.tar.gz"
    
    # 生成最终报告
    $SCRIPTS_DIR/generate_final_report.sh $TIMESTAMP
fi

# 清理临时文件
rm -rf $TEMP_DIR/*
log "增强版监控已完全停止！"